home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / easyvi1a / vbmemcap.bas < prev    next >
BASIC Source File  |  1997-11-18  |  4KB  |  103 lines

  1. Attribute VB_Name = "MemCap"
  2. '*
  3. '* Author: E. J. Bantz Jr.
  4. '* Copyright: None, use and distribute freely ...
  5. '* E-Mail: ejbantz@usa.net
  6. '* Web: http://www.inlink.com/~ejbantz
  7.  
  8. '// ------------------------------------------------------------------
  9. '//  Windows API Constants / Types / Declarations
  10. '// ------------------------------------------------------------------
  11.  
  12. Public Const WS_CHILD = &H40000000
  13. Public Const WS_VISIBLE = &H10000000
  14. Public Const SWP_NOMOVE = &H2
  15. Public Const SWP_NOZORDER = &H4
  16. Public Const HWND_BOTTOM = 1
  17.  
  18. '// Memory manipulation
  19. Declare Function lStrCpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As Long, ByVal lpString2 As Long) As Long
  20. Declare Function lStrCpyn Lib "kernel32" Alias "lstrcpynA" (ByVal lpString1 As Any, ByVal lpString2 As Long, ByVal iMaxLength As Long) As Long
  21. Declare Sub RtlMoveMemory Lib "kernel32" (ByVal hpvDest As Long, ByVal hpvSource As Long, ByVal cbCopy As Long)
  22. Declare Sub hmemcpy Lib "kernel32" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
  23.     
  24. '// Window manipulation
  25. Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  26. Declare Function DestroyWindow Lib "user32" (ByVal hndw As Long) As Boolean
  27.  
  28. Function MyFrameCallback(ByVal lwnd As Long, ByVal lpVHdr As Long) As Long
  29.  
  30.     Debug.Print "FrameCallBack"
  31.     
  32.     Dim VideoHeader As VIDEOHDR
  33.     Dim VideoData() As Byte
  34.     
  35.     '//Fill VideoHeader with data at lpVHdr
  36.     RtlMoveMemory VarPtr(VideoHeader), lpVHdr, Len(VideoHeader)
  37.     
  38.     '// Make room for data
  39.     ReDim VideoData(VideoHeader.dwBytesUsed)
  40.     
  41.     '//Copy data into the array
  42.     RtlMoveMemory VarPtr(VideoData(0)), VideoHeader.lpData, VideoHeader.dwBytesUsed
  43.  
  44.     Debug.Print VideoHeader.dwBytesUsed
  45.     
  46.     
  47.     Debug.Print VideoData
  48.     
  49. End Function
  50.  
  51. Function MyYieldCallback(lwnd As Long) As Long
  52.  
  53.     Debug.Print "Yield"
  54.  
  55. End Function
  56.  
  57. Function MyErrorCallback(ByVal lwnd As Long, ByVal iID As Long, ByVal ipstrStatusText As Long) As Long
  58.     
  59.     If iID = 0 Then Exit Function
  60.     
  61.     Dim sStatusText As String
  62.     Dim usStatusText As String
  63.     
  64.     'Convert the Pointer to a real VB String
  65.     sStatusText = String$(255, 0)                                      '// Make room for message
  66.     lStrCpy StrPtr(sStatusText), ipstrStatusText                       '// Copy message into String
  67.     sStatusText = Left$(sStatusText, InStr(sStatusText, Chr$(0)) - 1)  '// Only look at left of null
  68.     usStatusText = StrConv(sStatusText, vbUnicode)                     '// Convert Unicode
  69.             
  70.     Debug.Print "Error: ", usStatusText, iID
  71.  
  72. End Function
  73.  
  74. Function MyStatusCallback(ByVal lwnd As Long, ByVal iID As Long, ByVal ipstrStatusText As Long) As Long
  75.  
  76.     If iID = 0 Then Exit Function
  77.    
  78.     Dim sStatusText As String
  79.     Dim usStatusText As String
  80.     
  81.     '// Convert the Pointer to a real VB String
  82.     sStatusText = String$(255, 0)                                      '// Make room for message
  83.     lStrCpy StrPtr(sStatusText), ipstrStatusText                       '// Copy message into String
  84.     sStatusText = Left$(sStatusText, InStr(sStatusText, Chr$(0)) - 1)  '// Only look at left of null
  85.     usStatusText = StrConv(sStatusText, vbUnicode)                     '// Convert Unicode
  86.     
  87.     Debug.Print "Status: ", usStatusText, iID
  88.  
  89. End Function
  90.  
  91. Function MyVideoStreamCallback(lwnd As Long, lpVHdr As Long) As Long
  92.  
  93.     Beep  '// Replace this with your code!
  94.   
  95. End Function
  96.  
  97. Function MyWaveStreamCallback(lwnd As Long, lpVHdr As Long) As Long
  98.  
  99.     Debug.Print "WaveStream"
  100.  
  101. End Function
  102.  
  103.